package com.niiwoo.civet.mobile.vo.response.bill;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * Created by DELL on 2018/10/29.
 */
@Getter
@Setter
@ApiModel(value = "用户账单详情",description = "这只是每个页面上共同的属性，不同的业务详情页面还有额外增加项")
public class UserBillDetailResponse {
    @ApiModelProperty("账单id")
    private Long billId;

    @ApiModelProperty("账单标题")
    private String billTitle;

    @ApiModelProperty("账单状态")
    private Byte status;

    @ApiModelProperty("账单状态描述")
    private String statusDesc;

    @ApiModelProperty("账单金额")
    private BigDecimal amount;

    @ApiModelProperty("资金明细项List")
    private List<AmountItem> amountItems;

    @ApiModelProperty("不同业务类型的特殊属性项List")
    private List<SpecialItem> specialItems;

    @ApiModelProperty("交易类型")
    private String tradeType;

    @ApiModelProperty("交易类型描述")
    private String tradeTypeDesc;

    @ApiModelProperty("交易时间")
    private Date billTime;

    @ApiModelProperty("交易流水号")
    private String requestNo;

    @ApiModelProperty("项目id")
    private Long projectId;

    @ApiModelProperty("订单id")
    private String orderId;






    @Getter
    @Setter
    @ApiModel("资金项")
    public class AmountItem{
        @ApiModelProperty("资金code")
        private String code;
        @ApiModelProperty("资金名称")
        private String name;
        @ApiModelProperty("金额说明")
        private String amountDesc;
    }

    @Getter
    @Setter
    @ApiModel("特殊属性项")
    public class SpecialItem{
        @ApiModelProperty("属性编码，一般为空，用作特殊场景判断")
        private String code;
        @ApiModelProperty("属性名称")
        private String name;
        @ApiModelProperty("属性内容")
        private String content;
        @ApiModelProperty("属性图标地址:为空时不用显示图片")
        private String imgUrl;
        @ApiModelProperty("用户类型 1:个人用户 2:企业用户")
        private Byte userType;
        @ApiModelProperty("是否需要跳转 false:不需要跳转, true:需要跳转")
        private Boolean isNeedJump = Boolean.FALSE;
        @ApiModelProperty("跳转类型:详情见枚举JumpTypeEnum")
        private String jumpType;
        @ApiModelProperty("跳转参数1")
        private String jumpParamOne;
        @ApiModelProperty("跳转参数2")
        private String jumpParamTwo;
    }


}
